package Java基础Day06面向对象下.接口.创建接口匿名实现类;

/**
 * Created with IntelliJ IDEA.
 *
 * @author 李铭洋
 * @company 王自立有限公司
 * @date 2021-12-16 14:45
 * @Description:
 **/
/*
 * 接口的使用
 * 1.接口使用上也满足多态性
 * 2.接口，实际上就是定义了一种规范
 * 3.开发中，体会面向接口编程！
 *
 */
public class USBTest {
    public static void main(String[] args) {
        Computer com=new Computer();
        //1.创建了接口的非匿名实现类的非匿名对象
        Flash flash=new Flash();
        com.transferDate(flash);

        //2. 创建了接口的非匿名实现类的匿名对象
        com.transferDate(new Printer());

        //3. 创建了接口的匿名实现类的非匿名对象
        USB phone=new USB() {
            @Override
            public void start() {
                System.out.println("手机开始工作");
            }

            @Override
            public void stop() {
                System.out.println("手机结束工作");
            }
        };
        com.transferDate(phone);

        //4. 创建了接口的匿名实现类的匿名对象
        com.transferDate(new USB() {
            @Override
            public void start() {
                System.out.println("MP3开始工作");
            }

            @Override
            public void stop() {
                System.out.println("MP3结束工作");
            }
        });
    }
}
class  Computer{
    public void transferDate(USB usb){
        usb.start();

        System.out.println("具体传输数据的细节");

        usb.stop();
    }
}
interface USB{
    //定义了长、宽、最大最小的传输速度等

    void start();

    void stop();
}
class Flash implements USB{

    @Override
    public void start() {
        System.out.println("u盘开启工作");
    }

    @Override
    public void stop() {
        System.out.println("u盘结束工作");
    }
}
class Printer implements USB{

    @Override
    public void start() {
        System.out.println("打印机开启工作");
    }

    @Override
    public void stop() {
        System.out.println("打印机结束工作");
    }
}